package cn.changeforyou.web.dao.mybatis.ext.metaInfo;

import cn.changeforyou.web.dao.mybatis.ext.metaInfo.condition.CombineAnnotationEnum;
import lombok.Data;

/**
 * 联合字段注解信息
 * 目前就两个联合注解, 那就直接把所有信息组在一起好了, 将来多点可以考虑抽象
 *
 * @author zhyu
 * @version 1.0
 * @date 2022/2/18 12:58
 */
@Data
public class ConditionCombineFieldMetaInfo implements WhereSubSentenceMetaInfo {

    /**
     * 联合注解类型
     */
    private CombineAnnotationEnum type;

    /**
     * between 关键字左边的表达式, 如果是本类中的字段就在字段名的前面放#
     *
     * @return
     */
    private String leftBetween;
    /**
     * and 关键字左边的表达式, 如果是本类中的字段就在字段名的前面放#
     */
    private String leftAnd;

    /**
     * and 关键字右边的表达式, 如果是本类中的字段就在字段名的前面放#
     */
    private String rightAnd;

    /**
     * 是否是not between
     */
    private boolean notBetween;

    /**
     * 括号id
     *
     * @return
     */
    private String key;

    /**
     * 括号是否以or相连
     *
     * @return
     */
    private boolean or;

    /**
     * 父括号的id
     *
     * @return
     */
    private String parentKey;

    /**
     * 加入这个括号的Condition的key
     *
     * @return
     */
    private String[] conditionKeys;

    /**
     * sql语句
     */
    private String sql;

}
